home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / More Source / Libraries / SAT 2.3b4 / Demo ƒ / Collision demo ƒ / sMrEgghead.p < prev   
Text File  |  1995-01-29  |  994b  |  46 lines

  1. { Player sprite for SATcollision }
  2.  
  3. unit sMrEgghead;
  4.  
  5. interface
  6.  
  7.     uses
  8. {$IFC UNDEFINED THINK_PASCAL}
  9.         Types, Quickdraw, Events, 
  10. {$ENDC}
  11.         SAT;
  12.  
  13.     var
  14.         mrEggheadFaces: array[0..3] of FacePtr;
  15.  
  16.     procedure InitMrEgghead;
  17.     procedure SetupMrEgghead (me: SpritePtr);
  18.     procedure HandleMrEgghead (me: SpritePtr);
  19.  
  20. implementation
  21.  
  22.     procedure InitMrEgghead;
  23.         var
  24.             i: integer;
  25.     begin
  26.         for i := 0 to 3 do
  27.             mrEggheadFaces[i] := SATGetFace(128 + i);
  28.     end;
  29.  
  30.     procedure SetupMrEgghead (me: SpritePtr);
  31.     begin
  32. {me^.mode := 0;         Unnecessary - it is always initialized to 0 by SAT.}
  33.         me^.kind := 1;                            {"Friend" kind - positive so it can collide with apples, which have negative kind.}
  34.         SetRect(me^.hotRect, 0, 0, 32, 32);    {Set the "hot" rectange, for collisions}
  35.         me^.task := @HandleMrEgghead;        {Must have a handling routine}
  36.     end;
  37.  
  38.     procedure HandleMrEgghead (me: SpritePtr);
  39.     begin
  40.         GetMouse(me^.position);
  41.  
  42.         me^.mode := (me^.mode + 1) mod 4;
  43.         me^.face := mrEggheadFaces[me^.mode];
  44.     end;
  45.  
  46. end.